const path = require('path')
// const webpack = require('webpack')
const px2rem = require('postcss-px2rem')
// 配置基本大小
const postcss = px2rem({
  // 基准大小 baseSize，需要和rem.js中相同
  remUnit: 16
})

function resolve(dir) {
  return path.join(__dirname, dir)
}
module.exports = {
  lintOnSave: true,
  css: {
    loaderOptions: {
      postcss: {
        plugins: [
          postcss
        ]
      }
    }
  },
  publicPath: './',
  // publicPath: process.env.NODE_ENV === "production" ? "/dist" : "/",
  // outputDir: 'dist',
  chainWebpack: config => {
    config.when(process.env.NODE_ENV === 'production', config => {
      config.entry('app').clear().add('./src/main-prod.js')
      // config.set('externals', {
      //     vue: 'Vue',
      //     // 'vue-router': 'VueRouter',
      //     axios: 'axios',
      //     echarts: 'echarts',
      //     nprogress: 'NProgress'
      // })
    })
    config.when(process.env.NODE_ENV === 'development', config => {
      config.entry('app').clear().add('./src/main-dev.js')
    })

    // 清空默认svg规则
    config.module
      .rule('svg')
      .uses.clear()
    config.module //针对svg文件添加svg-sprite-loader规则
      .rule('svg1')
      .test(/\.svg$/)
      .use('svg-sprite-loader')
      .loader('svg-sprite-loader')
      .options({
        symbolId: 'icon-[name]'
      })
      .end()

  },
  devServer: {
    proxy: {
      '/api': {
        // 此处的写法，我访问的是http://localhost:8080/api/dataHome.json设置代理后，axios请求不需要把域名带上，只需要把路径前面加上 /api 即可。
        // target: 'http://localhost:8001/',
        target: 'https://xiangqian.club:8001/',
        // 允许跨域
        // 在本地会创建一个虚拟服务端，然后发送请求的数据，并同时接收请求的数据，这样服务端和服务端进行数据的交互就不会有跨域问题
        changeOrigin: true,

        // 是否代理
        ws: true,

        // 路径重置
        // 由于设置了 pathRewrite，所以请求时会把 /api 替换成 ''，最终的请求路径为 /dataHome.json
        pathRewrite: {
          '^/api': ''
          // ['^' + process.env.VUE_APP_BASE_API]: ''
        }
      }
    }
  }
  // pluginOptions: {
  //     svgSprite: {
  //         dir: 'src/icons/svg/',
  //         test: /\.(svg)(\?.*)?$/,
  //         loaderOptions: {
  //             extract: true,
  //             spriteFilename: 'icons.[hash:8].svg' // or 'img/icons.svg' if filenameHashing == false
  //         },
  //         pluginOptions: {
  //             plainSprite: true
  //         }
  //     }
  // }
}
